package com.summer.jdbc.view;

import com.summer.jdbc.dao.FoodDao;
import com.summer.jdbc.po.Food;

import java.util.List;
import java.util.Scanner;

public class FoodView {
    private final Scanner input = new Scanner(System.in);
    public List<Food> showFoodList(Integer businessId) {
        FoodDao dao = new FoodDao();
        List<Food> list = dao.listFoodByBusinessId(businessId);
        System.out.println("食品编号\t食品名称\t食品介绍\t食品价格");
        for(Food food : list) {
            System.out.println(food.getFoodId()+"\t"+food.getFoodName()+"\t"+food.getFoodExplain()+"\t"+food.getFoodPrice());
        }
        return list;
    }

    public void saveFood(Integer businessId) {
        Food food = new Food();
        System.out.println("请输入食品名称：");
        food.setFoodName(input.next());
        System.out.println("请输入食品介绍：");
        food.setFoodExplain(input.next());
        System.out.println("请输入食品价格：");
        food.setFoodPrice(input.nextDouble());
        food.setBusinessId(businessId);

        FoodDao dao = new FoodDao();
        int result = dao.saveFood(food);
        if(result>0) {
            System.out.println("\n新增食品成功！\n");
        }else {
            System.out.println("\n新增食品失败！\n");
        }
    }

    public void updateFood(Integer businessId) {
        FoodDao dao = new FoodDao();
        List<Food> list = showFoodList(businessId);

        if(list.size()==0) {
            System.out.println("没有任何食品！");
        }else {
            System.out.println("请选择要更新的食品编号：");
            int foodId = input.nextInt();
            Food food = dao.getFoodById(foodId);
            System.out.println(food);

            String inputStr = "";
            System.out.println("是否更新食品名称(y/n)：");
            inputStr = input.next();
            if(inputStr.equals("y")) {
                System.out.println("请输入新的食品名称：");
                food.setFoodName(input.next());
            }

            System.out.println("是否更新食品介绍(y/n)：");
            inputStr = input.next();
            if(inputStr.equals("y")) {
                System.out.println("请输入新的食品介绍：");
                food.setFoodExplain(input.next());
            }

            System.out.println("是否更新食品价格(y/n)：");
            inputStr = input.next();
            if(inputStr.equals("y")) {
                System.out.println("请输入新的食品价格：");
                food.setFoodPrice(input.nextDouble());
            }

            int result = dao.updateFood(food);
            if(result>0) {
                System.out.println("\n修改食品成功！\n");
            }else {
                System.out.println("\n修改食品失败！\n");
            }
        }
    }

    public void removeFood(Integer businessId) {
        FoodDao dao = new FoodDao();
        List<Food> list = showFoodList(businessId);
        if(list.size()==0) {
            System.out.println("没有任何食品！");
        }else {
            System.out.println("请选择要删除的食品编号：");
            int foodId = input.nextInt();
            List<Food> foodList = dao.listFoodByBusinessId(businessId);
            boolean flag=false;         //用于判断输入的食物编号是否属于该商家旗下的食物
            for(Food food : list) {
                if(foodId==food.getFoodId())flag = true;
            }
            if(flag==false){
                System.out.println("\n您无权删除该食品或该食品不存在！\n");
                return;
            }
            System.out.println("确认要删除吗(y/n)：");
            if(!input.next().equals("y"))return;
            int result = dao.removeFood(foodId);
            if (result > 0) {
                System.out.println("\n删除食品成功！\n");
            } else {
                System.out.println("\n删除食品失败！\n");
            }
        }
    }
}
